package com.example.exam.controller;

import com.alibaba.excel.EasyExcel;
import com.example.exam.listener.UserListener;
import com.example.exam.pojo.User;
import com.example.exam.service.UserService;
import com.example.exam.utils.R;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * @author zhozixiong
 * @date 2023/05/27
 *
 * 考生管理
 */
@RequestMapping("/management")
@RestController
@RequiredArgsConstructor
public class UserController {

    private final UserService userService;

    /**
     * 录入用户
     */
    @PostMapping("/inputUser")
    public Object input(@RequestBody User user) {
        User user1 = userService.searchAllBySid(user.getSid());
        if(user1 != null) {
            return R.fail("该用户已存在");
        }
        userService.insert(user);
        return R.ok();
    }

    /**
     *  通过excel文档批量导入用户
     *
     *  格式(顺序没有限制)：
     *  手机号 姓名 班级
     */
    @PostMapping("/batchInputUser")
    public Object batchInput(MultipartFile file) throws IOException {
        EasyExcel.read(file.getInputStream(), User.class, new UserListener(userService)).sheet().doRead();
        return R.ok();
    }

    /**
     * 获取学生列表
     */
    @GetMapping("/userList")
    public Object userList() {
        List<User> users = userService.searchAll();
        return R.ok(users);
    }

    /**
     *  修改用户信息
     */
    @PutMapping("/updateUser")
    public Object updateUser(@RequestBody User user) {
        //查询用户是否存在
        User user1 = userService.searchAllBySid(user.getSid());
        if(user1 == null) {
            return R.fail("该用户不存在");
        }
        userService.updateAchievement(user);
        return R.ok();
    }

    /**
     * 删除指定用户
     */
    @DeleteMapping("/delUser/{sid}")
    public Object delUser(@PathVariable String sid) {
        userService.delectAchievement(sid);
        return R.ok();
    }
}
